Increased use of Solid-State-Drives (SSD) in PCIe disk arrays in data center storage solutions has not only significantly reduced input/output (I/O) latency, but has also been able to alleviate I/O bottlenecks by providing a much higher I/O performance without the need for a large number of disk enclosures. However, given the extreme advances in performance, the performance of network controllers and other network devices has thus far lagged behind in handling the vastly increased I/O traffic.
To handle the controller bottleneck, an NVMe (Non-Volatile Memory Express) interface has been developed, which gains great advantages over the traditional SAS)/SATA interface (SAS=Serial Attached SCSI; SATA=Serial Advanced Technology Attachment) due to the direct PCIe connection between central processing unit CPU and the SSD, which leads to linearly scalable bandwidth and considerable reduction in latency. However, on the other hand, current NVMe implementations are too tightly coupled to CPUs such that failover of SSDs may cause problems. To loosen the prior art tight coupling between CPU and SSD, PCIe switches have been involved in the storage solution, which, not only natively extend the limited CPU PCIe bandwidth, but also isolate the SSD failure issue, at the cost of increased CPU to SSD latency.
To handle the network bottleneck for I/O performance, hyper convergence has become the new trend for data center infrastructure. Comparing to the traditional centralized storage, such as SAN (Storage Area Network), where the storage pool as a whole is accessed by hosts via a network, hyper convergence is basically a distributed storage platform, implemented by natively integrating the compute and storage components together as a node, and aggregating nodes into cluster. Hyper convergence fully utilizes the localized I/O operation within a node, which significantly offloads the network traffic. However, there remains heavy traffic on the node-to-node network due to the distributed storage requirement, such as data replica and synchronization.